
        <html>
			<head>
			     <title>一个支付宝木马的分析溯源之旅 - 360安全卫士</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/papers/14103">http://drops.wooyun.org/papers/14103</a></h1>
				
      <p>
        <p><strong>Author: 360天眼实验室</strong></p>

<h1>0x00 引子</h1>

<hr />

<p>人在做，天在看。</p>

<p>与网络的黑暗面斗争中，我们看到太多的年轻人陷入黑产的陷井，少数人暴发横财及时收手还能全身而退，多数人身处产业链的底端所得不多却受牢狱之灾。年轻人是国家的未来，他们敢想敢干而又无知鲁莽，希望他们不要为一时的无知付出太大的代价，今天的这个文章可以算作一个警醒，千金不换回头路。</p>

<p>网络从来就是一把双刃剑，越来越便捷的知识传播让广大的网络黑产工作者们只需简单修改别人的代码就可以制作出所谓的原创木马病毒，并进一步出售进行获利。近期，360天眼实验室拦截到一类盗取用户支付宝余额的木马，追根溯源揪出了木马制造者及一批木马放马者，而背后的造马者竟是一个高三学生，我们想说考不考得上大学还在其次，这位同学现在最应该读一下网络犯罪相关法条立即收手以免终身受此所累。</p>

<!--more-->

<h1>0x01 样本分析</h1>

<hr />

<p>为了对抗查杀，使用易语言做木马开发极其常见，我们所看到的这个样本即是如此，相关的信息如下，供大家参考。</p>

<p>木马文件MD5: 1976f6cbbc32fcbd7eaa75318642a182</p>

<p>尽管分析起来有点麻烦，但搞清楚木马行为只是时间问题，主要包括：</p>

<ul>
<li>代码加入花指令，对抗分析调试</li>
<li>过期自动失效（失效后想再次使用木马就要向木马作者缴费再次购买）</li>
<li>访问腾讯微博、新浪微博链接地址获取支付宝交易的钱数、次数、频率</li>
<li>开线程监控用户的支付宝转账操作，同时将转账地址替换成放马者指定的支付宝账户</li>
</ul>

<h3>加入花指令，对抗分析调试</h3>

<p>部分花指令如下：</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905565045736188.png" alt="" /></p>

<h3>判断木马是否过期</h3>

<p>过期时间是2016年1月14日，如图：</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905565146958247.png" alt="p2" /></p>

<h3>访问微博链接获取交易欺诈参数</h3>

<p>访问<code>http://t.qq.com/q912xxx937</code>微博地址，匹配出木马所需的信息，微博内容为：</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905565312862338.png" alt="p3" /></p>

<p>解密出微博地址：</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905565429621420.png" alt="p4" /></p>

<p>访问腾讯微博地址，得到微博内容：</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905565649556517.png" alt="p5" /></p>

<p>从微博页面中匹配“支付宝读取头部”和“支付宝读取尾部”，匹配出木马预留信息：</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905565893811617.png" alt="p6" /></p>

<p>获取到页面数据后，通过作者预先写好的开始标记和结束标记读取到用到的数据：</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905565979683717.png" alt="p7" /></p>

<p>从微博读取到的支付宝所需数据格式为"13267932191|1100|80|1100"，其中的13267932191表示支付宝账号，1100表示快捷金额，80表示触发金额，1100 是最大限额。当然，如果腾讯微博格式发布信息格式不正确，木马还会弹窗报错，提示发布正确格式的微博内容。</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905570139978815.png" alt="p8" /></p>

<p>对于木马转账的支付宝账号：13267932191，推测应该是一个手机号，从搜索引擎搜索结果得知，手机归属地是广州惠州的，如图：</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905570233032915.png" alt="p8" /></p>

<p><img src="http://static.wooyun.org//drops/20160329/20160329055704470591014.png" alt="p9" /></p>

<h3>账号替换</h3>

<p>木马程序打开后起线程不停查找浏览器的窗口，直到浏览器的地址栏包含alipay字符后，木马开始对支付过程进行劫持：</p>

<p>调用易语言的类库，获取当前的URL地址，用于判断用户是否正在进行支付操作。</p>

<p><img src="http://static.wooyun.org//drops/20160329/20160329055705833011119.png" alt="p10" /></p>

<p>如果用户正在进行支付操作，就查找<code>https://personalweb.alipay.com/portal/newhome.htm</code>网址中的<code>&lt;span class="integer"</code>标签和<code>&lt;input type="hidden" id="J-mfund-balance" value=</code>标签分别得到用户的账户余额和余额宝的余额。</p>

<p><img src="http://static.wooyun.org//drops/20160329/20160329055707687091216.png" alt="p11" /></p>

<p><img src="http://static.wooyun.org//drops/20160329/20160329055708788161313.png" alt="p12" /></p>

<p>在后台进行封包劫持：</p>

<p><img src="http://static.wooyun.org//drops/20160329/20160329055710425891411.png" alt="p13" /></p>

<p><img src="http://static.wooyun.org//drops/20160329/20160329055711161311512.png" alt="p14" /></p>

<p>木马通过注入浏览器，后台Post提交参数的方式，用户从浏览器中看不出有任何的异常，而只有在支付之后的交易记录中，才有可能发现收款人已被替换。而一切都以为时晚矣。</p>

<h1>0x02 推手追索</h1>

<hr />

<p>通过搜索引擎搜索“支付宝读取头部”关键字，我们找到了一批有问题的腾讯微博账号，这些账号大多都是直接从木马作者手中购买木马的“放马者”：</p>

<p><img src="http://static.wooyun.org//drops/20160329/20160329055713210381611.png" alt="p15" /></p>

<p>然后，我们就从这批放马者的账号中发现一个亮瞎眼的账号内容</p>

<p><code>http://t.qq.com/hy617xxx31</code></p>

<p>至于亮瞎眼的原因见下图，由此，我们定位到了可疑造马者，QQ号为：5500xxx39和617xxx31 ：</p>

<p><img src="http://static.wooyun.org//drops/20160329/20160329055905372351711.png" alt="p16" /></p>

<p>下面我就将按照”造马者”与“放马者”两条线索分别展开。</p>

<h3>造马者追踪</h3>

<p>通过对造马者的发微博时的实时位置，定位到造马者经常在四川省南充市活动，如图：</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905590684094189.png" alt="p17" /></p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905590863839198.png" alt="p18" /></p>

<p>另外，通过对上面两个QQ号公开的信息比较，也确定这两个QQ号都是造马者的QQ号，其中5500xxx39的QQ号为造马者的小号。</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905591056381208.png" alt="p19" /></p>

<p>而617xxx31为造马者联系木马业务的常用号码：</p>

<p><img src="http://static.wooyun.org//drops/20160329/20160329055911998052115.png" alt="p20" /></p>

<p>从搜索引擎也得知，造马者曾被人举报，称造马者盗源码写软件：</p>

<p><img src="http://static.wooyun.org//drops/20160329/20160329055913552982211.png" alt="p21" /></p>

<p>造马者为了销售木马，还专门成立了一个QQ群，推测群里应该有好多放马者，当然根据群位置信息，也可以进一步确定造马者所在的地理位置正是南充，与前面关于造马者地理的推断一致。</p>

<p><img src="http://static.wooyun.org//drops/20160329/20160329055915225222310.png" alt="p22" /></p>

<p>过对造马者QQ持续的关注，基本可以断定造马者是高中生。</p>

<p>2015年12月份，造马者QQ的修改签名为“秒余额，快捷，余额宝免杀马代秒鱼。回5。需要的私聊大量收家庭肉鸡，有的窗口。”，如下图</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905591644438248.png" alt="p23" /></p>

<p>而2016年2月29日，QQ个性签名更改为“3月份停工，高考后复出，学习新技能”，可以推断出造马者是高中生：</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905591844798256.png" alt="p24" /></p>

<p>与此同时，我们还在造马者的腾讯微博中看到造马者对木马书写的“产品说明书”（支持Windows所有版本）、“广告语”（高度人性化，可操作性强，稳定性强）、价格（支付宝收款700/月，银行卡收款1000/月）等，见下图：</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905591969760266.png" alt="p24" /></p>

<p>查询QQ群关系数据库，得到造马人的另外一个常用的QQ号码:963xxxx39：</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905592172716276.png" alt="p25" /></p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905592217169286.png" alt="p28" /></p>

<p>通过网上搜索QQ963xxxx39，发现造马者经常关注一些网络上的黑客教程，并且曾经从易语言论坛下载过支付宝支付账单源代码，如图：</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905592453141296.png" alt="p27" /></p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905592593671306.png" alt="p28" /></p>

<p><img src="http://static.wooyun.org//drops/20160329/20160329055926890423114.png" alt="p29" /></p>

<p>把易语言论坛上的这份“支付宝支付账单的源代码”下载后得知，代码的作用是查询支付宝交易记录，造马者在造马的过程中参考过这份源码。如图：</p>

<p><img src="http://static.wooyun.org//drops/20160329/20160329055928886943210.png" alt="p30" /></p>

<p>索引擎查询造马者QQ号关键字找到了这个人的优酷账号，其上传的视频中表明造马者的另一个身份：dnf玩家。</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905592974097339.png" alt="p31" /></p>

<p>同时搜索引擎告诉我们的还包括造马者的淘宝账号：a963xxxx39</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905593184499345.png" alt="p32" /></p>

<p>在此，我们推测这人的邮箱地址可能为：<code><a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="d0b1e9e6fafafafafae3e990e1e6e3feb3bfbd">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script></code></p>

<p>通过163找回密码，发现账号绑定的手机号码的后三位与淘宝账号中的手机的后三位是相同的，这就断定<code><a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="fa9bc3ccd0d0d0d0d0c9c3bacbccc9d4999597">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script></code>邮箱是属于造马者的，如图：</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905593279873354.png" alt="p33" /></p>

<p>通过尝试，找到了造马者的163邮箱密码：96xxxxx39</p>

<p>在邮箱中的已发送邮件中，大量的cf木马发送的邮件，邮件内容里面都是木马盗取的cf账号和密码等游戏信息。</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905593465761362.png" alt="p34" /></p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905593514932371.png" alt="p35" /></p>

<p>此外，观察到邮箱中有作者的MAC地址：00-50-56-c0-00-01，应该是造马者在测试程序时发送的，如图：</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905593688152381.png" alt="p36" /></p>

<p>总结：<br />
造马者经常活动于南充，可能的身份为：在校高中学生。机器mac地址可能为： 00-50-56-c0-00-01，作者不仅编写支付宝木马，还曾经盗取过cf游戏账号，常用邮箱为：<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="3c5d050a444444440f057c0d0a0f125f5351">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>，常用密码为：a96xxxxx39，常用的三个QQ号为617xxx31，5500xxx39，和963xxxx39，其中617xxx31号多用来卖支付宝木马；963xxxx39号多用来盗取游戏账号；5500xxx39为小号，不常使用。淘宝账号为：a963xxxxx39，手机号为：136xxxx5205</p>

<h3>放马者分析</h3>

<p>购买木马的人数众多，根据360威胁情报中心的数据，木马买家超过40人。我们随意抽取一个购买木马的用户进行探讨。</p>

<p>以下都是通过搜索引擎得到的放马者的微博地址：</p>

<ul>
<li>http://t.qq.com/g29q200w4231975</li>
<li>http://t.qq.com/r12tb9753197 </li>
<li>http://t.qq.com/oclt519753</li>
<li>http://t.qq.com/k93y642086</li>
<li>http://t.qq.com/chenjiaxi88</li>
</ul>

<p><img src="http://static.wooyun.org//drops/20160329/2016032905593841690391.png" alt="p37" /></p>

<p><img src="http://static.wooyun.org//drops/20160329/201603290559406098940.png" alt="p38" /></p>

<p>对于其中一个放马者，<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="947d140e7c2b13712a3a71190e711b05731a24d4f7fcf1fafefdf5ecfdacac730e1073003c721c23730e10710419713903702c2e7d0d1c7029277c312b">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>，腾讯微博中有其上传的生活照，如下：</p>

<p><img src="http://static.wooyun.org//drops/20160329/20160329060210551544110.png" alt="p39" /></p>

<p>最后，用这位放马者的QQ群关系来结束这次的追踪之旅：</p>

<p><img src="http://static.wooyun.org//drops/20160329/2016032906021226476421.png" alt="p40" /></p>

<h1>0x03 总结</h1>

<hr />

<p>我们看到的木马本身的技术并不复杂，传播手段也不见得高明，低技术门槛使网络犯罪的参与者呈现年轻化的分布。本次的攻击者溯源完全依赖公开可搜索的数据，甚至无需运用社工技巧，木马开发与使用者的无知无畏实在让人心惊。从造马者自发暴露的大量信息来看，他似乎并不觉得自己在违法犯罪，我们的中学教育在法律学习方面应该加入网络犯罪的内容。</p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          